1. Field of the Invention
The field of the invention is data processing, or, more specifically, methods, systems, and products for controlling delivery of broadcast encryption content for a network cluster from a content server outside the cluster.
2. Description of Related Art
With the advent of consumer digital technology, content such as music and movies are no longer bound to the physical media that carry it. Advances in consumer digital technology presents new challenges to content owners such as record labels, studios, distribution networks, and artists who want to protect their intellectual property from unauthorized reproduction and distribution. Recent advances in broadcast encryption offer an efficient alternative to more traditional solutions based on public key cryptography. In comparison with public key methods, broadcast encryption requires orders of magnitude less computational overhead in compliant devices. In addition, broadcast encryption protocols are one-way, not requiring any low-level handshakes, which tend to weaken the security of copy protection schemes.
IBM has developed a content protection system based on broadcast encryption called eXtensible Content Protection, referred to as “xCP.” xCP supports a trusted domain called a ‘cluster’ that groups together a number of compliant devices. Content can freely move among these devices, but it is useless to devices that are outside the cluster.
Each compliant device is manufactured with a set of device keys. A key management block (“KMB”) is a data structure containing an encryption of a management key using every compliant device key in the set of device keys for a compliant device. That is, a KMB contains a multiplicity of encrypted instances of a management key, one for every device key in the set of device keys for a device. Each compliant device, using one of its own device keys, is capable of extracting an encrypted management key from a key management block and decrypting it. That is, the management key for a cluster is calculated from the key management block, and it is the ability to calculate a management key from a key management block that distinguishes compliant devices.
A cluster is a private domain. Compliant devices can join a cluster. Some compliant devices in a cluster have specialized functions. Most devices do not store key management blocks; they read key management blocks from the cluster. A ‘kmbserver,’ however, is a device that stores the key management block and can update it. ‘Authorizers’ are network devices that can authorize other devices to join a cluster. In a compliant cluster, when a consumer purchases a device and installs it in his home, the device automatically determines which cluster is currently present, identifies an authorizer, and asks to join the cluster. In this specification, a network device that supports both an authorizer and an kmbserver is called a ‘cluster server.’
Each piece of content or each content stream in the home is protected with a unique key. These keys are called title keys. Each title key is encrypted with a master key for the particular home, called a binding key. To play protected content, a device reads the encrypted title key embedded in the content file and decrypts it with the binding key. Then, with the title key, the device decrypts the content itself. The binding key is calculated as the cryptographic hash of three quantities: the management key, the cluster ID, and a hash of the cluster's authorization table. The cluster ID is a unique identification code for a cluster established at cluster startup. The network authorization table is a simple file whose records represent the list of devices in the cluster.
Content providers need a binding key for a cluster to encrypt title keys to provide content encrypted so that it can only be decrypted by devices in the cluster. One way to get a cluster's binding key to a content server is for the content server to join the cluster. A content server, acting as a compliant device, may join a cluster as follows:                The content server broadcasts a “whosthere” message to a cluster network.        A cluster server answers with an “imhere” message, including cluster name, cluster server deviceID, cluster server device type, the cluster KMB, and a hash of a cluster authorization table.        The content server downloads the KMB from the cluster server.        The content server computes the cluster management key from the KMB and its own device keys.        The content server computes a message authorization code (“MAC”) by cryptographically hashing the management key with the content server's deviceID and the content server's device type code.        The content server sends an authorization request to the cluster server, including the content server's deviceID and device type.        The cluster server computes the management key using the KMB and its own device keys. This management key is the same as the management key computed by the content server.        The cluster server computes the MAC using the content server's deviceID and device type, verifying the MAC received from the content server.        If the MAC matches, the cluster server adds the content server to its authorization table.        The cluster server sends an ‘authorized’ message to the content server, including an encrypted clusterID, encrypted with a content server key created by hashing the management key and the content server's deviceID.        The content server generates the content server key by hashing the management key and the content server's deviceID and uses the content server key to decrypt the encrypted clusterID.        The content server downloads the new authorization table from the cluster server.        The content server computes the binding key for the cluster by hashing the management key, a hash of the new authorization table, and the clusterID.        
There are some drawbacks to this procedure. The content server broadcasts messages to clusters, which is not an appropriated procedure for a content server to perform. In addition, this procedure adds the content server as a device in the cluster, counting as a device against any maximum device count and changing the authorization table for the cluster. Moreover, the procedure is lengthy. There is an ongoing need for improvement therefore in procedures for controlling broadcast encryption of content for a network cluster from a content server outside the cluster.